/**
 * 应用程序全局配置
 * 根据不同的编译环境(mp-weixin-dev, mp-weixin-prod等)提供不同的配置
 */

// 微信小程序编译环境 - 强制使用开发环境API
// 设置为true，在微信小程序开发过程中(pnpm run dev:mp-weixin)将使用开发服务器URL
// 设置为false，则使用生产服务器URL
export const MP_WEIXIN_FORCE_DEV = true

// API基础路径配置
export const API_CONFIG = {
  // 生产环境API
  PROD_BASE_URL: 'https://api.mediumship.top',

  // 开发环境API
  // DEV_BASE_URL: "https://jingshu.mediumship.top:8100",
  DEV_BASE_URL: 'https://jingshu.mediumship.top:8100',

  // H5开发环境直接使用后端地址，不通过代理
  // H5_DEV_PROXY: "https://jingshu.mediumship.top:8100",
  // H5_DEV_PROXY: "http://192.168.8.106:8100",
  H5_DEV_PROXY: 'http://127.0.0.1:48080',
}

export const TerminalEnum = {
  UNKNOWN: 0, // 未知, 目的：在无法解析到 terminal 时，使用它
  WECHAT_MINI_PROGRAM: 10, //微信小程序
  WECHAT_WAP: 11, // 微信公众号
  H5: 20, // H5 网页
  APP: 31, // 手机 App
}

export const geTenantId = () => {
  return 1
}
/**
 * 将 uni-app 提供的平台转换为后端所需的 terminal值
 *
 * @return 终端
 */
export const getTerminal = () => {
  const platformType = (uni.getAppBaseInfo() as any).uniPlatform
  // 与后端terminal枚举一一对应
  switch (platformType) {
    case 'app':
      return TerminalEnum.APP
    case 'web':
      return TerminalEnum.H5
    case 'mp-weixin':
      return TerminalEnum.WECHAT_MINI_PROGRAM
    default:
      return TerminalEnum.UNKNOWN
  }
}

// 获取当前环境的API基础路径
export function getApiBaseUrl(): string {
  // 微信小程序环境
  // #ifdef MP-WEIXIN
  return MP_WEIXIN_FORCE_DEV ? API_CONFIG.DEV_BASE_URL : API_CONFIG.PROD_BASE_URL
  // #endif

  // H5环境
  // #ifdef H5
  // @ts-ignore
  console.log('PRODUCTION: ', PRODUCTION)
  return typeof PRODUCTION !== 'undefined' && PRODUCTION
    ? API_CONFIG.PROD_BASE_URL
    : API_CONFIG.H5_DEV_PROXY
  // #endif

  // 其他环境
  return API_CONFIG.PROD_BASE_URL
}

// 基础配置常量
export const CONFIG = {
  // API请求超时时间(毫秒)
  TIMEOUT: 10000,

  // API请求重试次数
  MAX_RETRY: 3,

  // API请求重试延迟(毫秒)
  RETRY_DELAY: 1000,
}
